package com.yuw.dz;

public class TestDriver02 {
    public static void main(String[] args) {
        //test01();
        System.out.println("================while循环====================");
        //test02();
        System.out.println("================do-while循环====================");
        test03();
        System.out.println("================break/continue语句====================");
        test04();
        System.out.println("================九九乘法表====================");
        test05();
    }

    /**
     * 使用双重for循环：打印九九乘法表
     */
    private static void test05() {
        System.out.println("九九乘法表：");
        // 第一层for循环控制行数
        // i 表示第几行
        for (int i = 1; i <= 9; i++) {
            // 第二层for循环控制列数
            // j 表示第几列
            for (int j = 1; j <= i; j++) {
                System.out.print(i + "*" + j + "=" + (i * j) + "   ");
            }
            // 换行
            System.out.println();
        }
    }

    /**
     * break/continue语句
     */
    private static void test04() {
        // 输出0-100之间的偶数
        System.out.println("0-100内的偶数1：");
        // 循环因子初始化
        int i = 0;
        while (i <= 100) {
            // 使用continue跳过奇数
            if (i % 2 == 1) {
                // 先改变循环因子再跳过本次循环，否则容易陷入死循环
                i++;
                // 奇数，跳过本次循环，进入下一次循环
                continue;
            }
            // 输出
            System.out.print("  " + i);
            // 改变循环因子
            i++;
        }
        // 换行
        System.out.println();
        System.out.println("----------------------------------------------");
        // 重新初始化循环因子
        System.out.println("0-100内的偶数2：");
        i = 0;
        while (true) {
            // 使用break结束while循环
            if (i > 100) {
                // 结束循环
                break;
            }
            // 判断是否为偶数
            // 输出
            System.out.print("  " + i);
            // 改变循环因子（每次+2）
            i = i + 2;
        }
        // 换行
        System.out.println();
        System.out.println("----------------------------------------------");
        System.out.println("0-100内的偶数3：");
        i = 0;
        for (; ; ) {
            // 使用break结束while循环
            if (i > 100) {
                // 结束循环
                break;
            }
            // 判断是否为偶数
            // 输出
            System.out.print("  " + i);
            // 改变循环因子（每次+2）
            i = i + 2;
        }
        // 换行
        System.out.println();
    }

    /**
     * do-while循环
     */
    private static void test03() {
        // 输出0-100之间的偶数
        System.out.println("0-100内的偶数1：");
        // 循环因子初始化
        int i = 0;
        do {
            // 判断是否为偶数
            if (i % 2 == 0) {
                // 输出
                System.out.print("  " + i);
            }
            // 改变循环因子
            i++;
        } while (i <= 100);
        // 换行
        System.out.println();
        System.out.println("----------------------------------------------");
        // 重新初始化循环因子
        System.out.println("0-100内的偶数2：");
        i = 0;
        do {
            // 判断是否为偶数
            // 输出
            System.out.print("  " + i);
            // 改变循环因子（每次+2）
            i = i + 2;
        }
        while (i <= 100);

        // 换行
        System.out.println();
        System.out.println("----------------------------------------------");
        System.out.println("0-100内的奇数：");
        // 重新初始化循环因子
        i = 0;
        do {
            // 判断是否为偶数
            if (i % 2 == 1) {
                // 输出
                System.out.print("  " + i);
            }
        } while (++i <= 100); // 循环条件判定表达式中含有循环因子改变语句，注意边界值的处理

        // 换行
        System.out.println();
    }

    /**
     * while循环
     */
    private static void test02() {
        // 输出0-100之间的偶数
        System.out.println("0-100内的偶数1：");
        // 循环因子初始化
        int i = 0;
        while (i <= 100) {
            // 判断是否为偶数
            if (i % 2 == 0) {
                // 输出
                System.out.print("  " + i);
            }
            // 改变循环因子
            i++;
        }
        // 换行
        System.out.println();
        System.out.println("----------------------------------------------");
        // 重新初始化循环因子
        System.out.println("0-100内的偶数2：");
        i = 0;
        while (i <= 100) {
            // 判断是否为偶数
            // 输出
            System.out.print("  " + i);
            // 改变循环因子（每次+2）
            i = i + 2;
        }
        // 换行
        System.out.println();
        System.out.println("----------------------------------------------");
        System.out.println("0-100内的偶数3：");
        // 重新初始化循环因子
        i = -1;
        while (i++ <= 100) {  // 循环条件判定表达式中含有循环因子改变语句，注意边界值的处理
            // 判断是否为偶数
            if (i % 2 == 0) {
                // 输出
                System.out.print("  " + i);
            }
            // 改变循环因子,写在了 循环条件判定表达式中
            //i++;
        }
        // 换行
        System.out.println();
    }

    /**
     * for循环
     */
    private static void test01() {
        // 输出0-100之间的偶数
        System.out.println("0-100内的偶数1：");
        for (int i = 0; i <= 100; i++) {
            // 判断是否为偶数
            if (i % 2 == 0) {
                // 输出
                System.out.print("  " + i);
            }
        }
        // 换行
        System.out.println();
        System.out.println("----------------------------------------------");
        System.out.println("0-100内的偶数2：");
        for (int i = 0; i <= 100; i += 2) {
            System.out.print("  " + i);
        }
        // 换行
        System.out.println();

        System.out.println("----------------------------------------------");
        System.out.println("0-100内的偶数3：");
        for (int i = 0; i <= 100; ) {
            System.out.print("  " + i);
            // 改变循环因子
            i += 2;
        }
        // 换行
        System.out.println();

        System.out.println("----------------------------------------------");
        System.out.println("0-100内的偶数4：");
        // 循环因子初始化
        int i = 0;
        for (; i <= 100; ) {
            System.out.print("  " + i);
            // 改变循环因子
            i += 2;
        }
        // 换行
        System.out.println();
    }
}
